/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Ingresos;


import Entidades.Gradoacademico;
import javax.persistence.EntityManagerFactory;
import Controladores.GradoacademicoJpaController;
import Controladores.exceptions.IllegalOrphanException;
import Controladores.exceptions.NonexistentEntityException;
import java.util.logging.Level;
import java.util.logging.Logger;
import Usuarios.conexion;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;


/**
 *
 * @author Gerson de Leon
 */
public class IGradoAcademico 
{

    public IGradoAcademico()
            {
            }
    // Procedimiento para ingresar Grado Academico
    public void guardar(String nombre)
            {
                EntityManagerFactory emf = conexion.getInstancia().getEMF();
                Gradoacademico gradoAcademico = new Gradoacademico();
                GradoacademicoJpaController controlador = new GradoacademicoJpaController(emf);
                gradoAcademico.setNombre(nombre);
                gradoAcademico.setAnulado(false);
                controlador.create(gradoAcademico);
            }
    
        //Procedimiento para Modificar Grado Academico
    public void ModificarId(Gradoacademico gradoAcademico)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        GradoacademicoJpaController controlador = new GradoacademicoJpaController(emf);
        try {
            controlador.edit(gradoAcademico);
        } catch (IllegalOrphanException ex) {
            Logger.getLogger(IGradoAcademico.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(IGradoAcademico.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(IGradoAcademico.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    //procedimiento buscar Id para modificar
    public Gradoacademico buscarId(int id)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        GradoacademicoJpaController controlador = new GradoacademicoJpaController(emf);
        return controlador.findGradoacademico(id);
    }
    
     //Funcion buscar nombre y regresa una lista tipo Grado Academico
    public List<Gradoacademico> buscarNombre(String nombre)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Gradoacademico.findByNombre");
        qr.setParameter("nombre", nombre);
        List<Gradoacademico> lista = qr.getResultList();
        return lista;
    }
    
    public List<Gradoacademico> mostrarTodo()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        GradoacademicoJpaController controlador = new GradoacademicoJpaController(emf);
        return controlador.findGradoacademicoEntities();
    }
    
    public String toString(int id)
    {
        Gradoacademico gradoAcademico = this.buscarId(id);
        return gradoAcademico.toString();
    }
            
}
